home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD020b.dsk / CATALOG ORGANIZER.bas < prev    next >
BASIC Source File  |  2003-06-12  |  5KB  |  107 lines

  1. 10  DIM A1(105),A2(105),A3(105),A4$(105),A5(105),A6(105),TAG(105)
  2. 20  TEXT : HOME 
  3. 30  ONERR  GOTO 920
  4. 40  POKE 32,6: POKE 33,28: POKE 34,3: POKE 35,16: VTAB 4: INVERSE : FOR X = 1 TO 10: PRINT "                           ": NEXT X: NORMAL 
  5. 50  POKE 32,7:: POKE 34,4: POKE 35,16: VTAB 5: FOR X = 1 TO 8: PRINT "                         ": NEXT X
  6. 60  VTAB 6: PRINT "  CATALOG ORGANIZER ]["
  7. 70  VTAB 8: PRINT " BY...JOEL M. MCWILLIAMS "
  8. 80  VTAB 11: PRINT "   COPYRIGHT (C) 1983"
  9. 90  RESTORE 
  10. 100  FOR LOC = 768 TO 829: READ CODE: POKE LOC,CODE: NEXT LOC
  11. 110  REM  -- HIGH ADDR
  12. 120  REM     64 DEC = 40 HEX
  13. 130  REM     RD BUFFER = $4000
  14. 140  LET ADDR = 64:TRK = 17:D = 1:S = 6 *16:K = 0:FLAG = 0
  15. 150  POKE 227,1: REM  RD FLAG
  16. 160  POKE 6,TRK
  17. 170  POKE 7,SECTR
  18. 180  POKE 8,D: REM  DRIVE #
  19. 190  POKE 9,S: REM  SLOT #
  20. 200  POKE 10,0: REM  ADR LO
  21. 210  POKE 11,ADDR: REM  HI
  22. 220  TEXT : VTAB 23: HTAB 1: INPUT " ";YN$
  23. 230  FOR I = 1 TO 20: POKE 32,20 -I: POKE 33,2 *I: HOME : FOR J = 1 TO 10: NEXT J: NEXT I
  24. 240  VTAB 3: HTAB 10: CALL  -868: PRINT "INSTRUCTIONS (Y/N)?";: GET YN$: IF YN$ < >"Y"  AND YN$ < >"N" GOTO 240
  25. 250  IF YN$ < >"Y"  THEN  HOME : GOTO 290
  26. 260  HOME : PRINT "THIS PROGRAM WILL READ THE CATALOG": PRINT "SECTORS ON A DISKETTE AND PURGE ANY": PRINT "DELETED FILES FROM THE DIRECTORY WHICH": PRINT "FORCES THE NEXT SAVED PROGRAM TO APPEAR": PRINT "AT THE END OF THE CATALOG.  ALSO, THE"
  27. 270  PRINT "CATALOG MAY BE ALPHABETIZED WHICH": PRINT "CAN BE VERY HELPFUL IN ATTEMPTING TO": PRINT "ORGANIZE A PROGRAM LIBRARY.": VTAB 23: HTAB 1: GET YN$
  28. 280  FOR I = 1 TO 8: POKE 35,I: HOME : FOR J = 1 TO 75: NEXT J: NEXT I: TEXT 
  29. 290  HOME : VTAB 2: HTAB 4: PRINT "ALPABETIZE THIS DISK?";: GET AD$: PRINT AD$: IF AD$ < >"Y"  AND AD$ < >"N" GOTO 290
  30. 300  VTAB 23: HTAB 1: PRINT "INSERT DISKETTE ";: GET YN$: HOME 
  31. 310  INVERSE : FOR I = 10 TO 14: VTAB I: HTAB 5: PRINT "                                ": NEXT I: NORMAL : FOR I = 11 TO 13: VTAB I: HTAB 6: PRINT "                              ": NEXT I
  32. 320  VTAB 12: HTAB 11: PRINT "CATALOG ORGANIZER ]["
  33. 330  LET N = 0
  34. 340  FOR SECTR = 15 TO 1  STEP  -1
  35. 350  POKE 7,SECTR
  36. 360  CALL 768
  37. 370  VTAB 12: HTAB 33: PRINT "  ": VTAB 12: HTAB 7: PRINT "READING TRACK: ";TRK;" SECTOR: ";SECTR
  38. 380  POKE 49385,0
  39. 390  FOR FILE = 1 TO 7
  40. 400  LET LOC = 16395 +(FILES -1) *35
  41. 410  IF  PEEK(LOC) = 0 GOTO 520
  42. 420  LET N = N +1
  43. 430  IF  PEEK(LOC) = 255 GOTO 500
  44. 440  LET K = K +1
  45. 450  LET A1(K) =  PEEK(LOC):A2(K) =  PEEK(LOC +1):A3(K) =  PEEK(LOC +2)
  46. 460  FOR I = LOC +3 TO LOC +32
  47. 470  LET A4$(K) = A4$(K) + CHR$( PEEK(I))
  48. 480  NEXT I
  49. 490  LET A5(K) =  PEEK(LOC +33):A6(K) =  PEEK(LOC +34)
  50. 500  NEXT FILE
  51. 510  NEXT SECTR
  52. 520  POKE 49384,0
  53. 530  FOR I = 1 TO K:TAG(I) = I: NEXT I
  54. 540  IF AD$ < >"Y" GOTO 600
  55. 550  VTAB 12: HTAB 7: PRINT "                             ": VTAB 12: HTAB 14: PRINT "SORTING FILES"
  56. 560  FOR I = 1 TO K -1: FOR J = I +1 TO K
  57. 570  IF A4$(TAG(I)) <A4$(TAG(J))  THEN 590
  58. 580  LET TEMP = TAG(I):TAG(I) = TAG(J):TAG(J) = TEMP
  59. 590  NEXT J: NEXT I
  60. 600  VTAB 12: HTAB 7: PRINT "                             ": VTAB 12: HTAB 14: PRINT "ANALIZING DATA"
  61. 610  LET M = 0
  62. 620  LET NS = 15 - INT(N/7)
  63. 630  IF (N/7) =  INT(N/7)  THEN NS = NS +1
  64. 640  FOR SECTR = 15 TO NS  STEP  -1
  65. 650  FOR LOC = 16384 TO 16640: POKE LOC,0: NEXT LOC
  66. 660  POKE 16385,17: POKE 16386,SECTR -1
  67. 670  FOR FILE = 1 TO 7
  68. 680  IF M > = K  THEN  GOTO 790
  69. 690  LET M = M +1
  70. 700  LET LOC = 16395 +(FILES -1) *35
  71. 710  POKE LOC,A1(TAG(M)): POKE LOC +1,A2(TAG(M)): POKE LOC +2,A3(TAG(M))
  72. 720  LET J = 0
  73. 730  FOR I = LOC +3 TO LOC +32
  74. 740  LET J = J +1
  75. 750  POKE I, ASC( MID$ (A4$(TAG(M)),J,1))
  76. 760  NEXT I
  77. 770  POKE LOC +33,A5(TAG(M)): POKE LOC +34,A6(TAG(M))
  78. 780  NEXT FILE
  79. 790  VTAB 12: HTAB 33: PRINT "  ": VTAB 12: HTAB 7: PRINT "WRITING TRACK: ";TRK;" SECTOR: ";SECTR
  80. 800  POKE 7,SECTR
  81. 810  POKE 227,2
  82. 820  CALL 768
  83. 830  POKE 49385,0
  84. 840  NEXT SECTR
  85. 850  POKE 49384,0
  86. 860  HOME : VTAB 23: HTAB 1: PRINT "ANOTHER DISKETTE?";: GET YN$: PRINT YN$: IF YN$ < >"Y"  THEN  TEXT : HOME : END 
  87. 870  RUN 
  88. 880  DATA  24,169,0,141,245,183,133,12
  89. 890  DATA  141,235,183,165,9,141,233,183
  90. 900  DATA  165,8,141,234,183,165,6,141,236,183
  91. 910  DATA  165,7,141,237,183,165,227,141
  92. 920  DATA  244,183,165,10,141,240,183,165,11
  93. 930  DATA  141,241,183,169,183,160,232,32
  94. 940  DATA    217,3,144,5,173,245,183,133,12,96,0
  95. 950  REM  ** ERROR SUB
  96. 960  LET ERR =  PEEK(222)
  97. 970  POKE 216,0: POKE 222,1
  98. 980  IF ERR = 255  THEN  TEXT : HOME : END 
  99. 990  TEXT : HOME : PRINT "ERROR": END 
  100. 65528  REM 
  101. 65529  REM  $$$$$$$$$$$$$$$$$$$$$
  102. 65530  REM  $      CATALOG      $
  103. 65531  REM  $    ORGANIZER ][   $   
  104. 65532  REM  $ COPYRIGHT (C) 1982$
  105. 65533  REM  $     ... BY ...    $
  106. 65534  REM  $ JOEL M MCWILLIAMS $
  107. 65535  REM  $$$$$$$$$$$$$$$$$$$$$